package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 财务模块-收款单,推金蝶对象 erp_king_finance_receipt_info
 *
 * @author wutao
 * @date 2024-06-19
 */
@TableName ( "erp_king_finance_receipt_info" )
@ApiModel ( value = "erp_king_finance_receipt_info对象", description = "财务模块-收款单" )
@Data
public class KingFinanceReceiptEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    /**
     * 单据类型Id,dialog走接口
     */
    @ApiModelProperty ( "登录公司" )
    @TableField ( "dept_id" )
    @Excel ( name = "登录公司" )
    private String deptId;

    /**
     * 单据类型Id,dialog走接口
     */
    @ApiModelProperty ( "应收票据Id" )
    @TableField ( "receipt_bill_id" )
    @Excel ( name = "应收票据" )
    private String receiptBillId;

    /**
     * 单据类型Id,dialog走接口
     */
    @ApiModelProperty ( "单据类型编码" )
    @TableField ( "doc_type_code" )
    @Excel ( name = "单据类型编码" )
    private String docTypeCode;


    @ApiModelProperty ( "付款单位类型;" +
            "客户：BD_Customer；" +
            "供应商：BD_Supplier；" +
            "部门：BD_Department；" +
            "员工：BD_Empinfo；" +
            "其他往来单位：FIN_OTHERS；" +
            "组织机构：ORG_Organizations；" +
            "银行：BD_BANK" )
    @TableField ( "pay_dept_type" )
    @Excel ( name = "付款单位类型" )
    private String payDeptType;

    @ApiModelProperty ( "付款单位" )
    @TableField ( "pay_dept_id" )
    @Excel ( name = "付款单位" )
    private String payDeptId;

    /**
     * 收款组织Id,dialog走接口
     */
    @ApiModelProperty ( "收款组织Id,dialog走接口" )
    @TableField ( "receipt_dept_id" )
    @Excel ( name = "收款组织Id,dialog走接口" )
    private String receiptDeptId;

    @ApiModelProperty ( "结算组织" )
    @TableField ( "settlement_dept_id" )
    @Excel ( name = "结算组织" )
    private String settlementDeptId;

    @ApiModelProperty ( "销售组织" )
    @TableField ( "sale_company_id" )
    @Excel ( name = "销售组织" )
    private String saleCompanyId;

    /**
     * 收款组织Id,dialog走接口
     */
    @ApiModelProperty ( "单据编号" )
    @TableField ( "doc_no" )
    @Excel ( name = "单据编号" )
    private String docNo;

    /**
     * 币别Id,dialog走接口
     */
    @ApiModelProperty ( "币别编码" )
    @TableField ( "king_base_currency_code" )
    @Excel ( name = "币别Id,select走字典" )
    private String kingBaseCurrencyCode;

    /**
     * 业务时间
     */
    @ApiModelProperty ( "业务时间" )
    @TableField ( "business_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "业务时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date businessTime;

    /**
     * 销售部门Id
     */
    @ApiModelProperty ( "销售部门Id" )
    @TableField ( "sale_dept_id" )
    @Excel ( name = "销售部门Id" )
    private String saleDeptId;


    @ApiModelProperty ( "销售员" )
    @TableField ( "sale_user_id" )
    @Excel ( name = "销售员" )
    private String saleUserId;

    /**
     * 往来单位类型
     */
    @ApiModelProperty ( "往来单位类型" +
            "客户：BD_Customer；" +
            "供应商：BD_Supplier；" +
            "部门：BD_Department；" +
            "员工：BD_Empinfo；" +
            "其他往来单位：FIN_OTHERS；" +
            "组织机构：ORG_Organizations；" +
            "银行：BD_BANK" )
    @TableField ( "transaction_company_type" )
    @Excel ( name = "往来单位类型" )
    private String transactionCompanyType;

    /**
     * 往来单位Id
     */
    @ApiModelProperty ( "往来单位Id，dialog走接口" )
    @TableField ( "transaction_company_id" )
    @Excel ( name = "往来单位Id，dialog走接口" )
    private String transactionCompanyId;

    /**
     * 应收金额
     */
    @ApiModelProperty ( "应收金额" )
    @TableField ( "cope_money" )
    @Excel ( name = "应收金额" )
    private String copeMoney;

    /**
     * 实收金额
     */
    @ApiModelProperty ( "实收金额" )
    @TableField ( "actual_money" )
    @Excel ( name = "实收金额" )
    private String actualMoney;

    /**
     * 源单类型
     */
    @ApiModelProperty ( "源单类型：\n" +
            "1、手动创建\n" +
            "2、应收票据下推付款单\n" +
            "3、应收单下推付款单\n" +
            "4、其他应收单下推付款单\n" +
            "5、工程下推" )
    @TableField ( "source_doc_type" )
    @Excel ( name = "源单类型" )
    private Integer sourceDocType;

    @TableField ( "state" )
    private String state;

    @ApiModelProperty ( "已核销金额" )
    @TableField ( "verified_amount" )
    private String verifiedAmount;

    @ApiModelProperty ( "流程实例id" )
    @TableField ( "instance_id" )
    private String instanceId;

    @ApiModelProperty ( "汇率类型" )
    @TableField ( "rate_type" )
    private String rateType;

    @ApiModelProperty ( "结算汇率类型" )
    @TableField ( "settlement_rate_type" )
    private String settlementRateType;

    @ApiModelProperty ( "结算汇率" )
    @TableField ( "settlement_rate" )
    private String settlementRate;

    @ApiModelProperty ( "汇率" )
    @TableField ( "rate" )
    private String rate;

    @ApiModelProperty ( "结算币别" )
    @TableField ( "settlement_currency_code" )
    private String settlementCurrencyCode;

    @ApiModelProperty ( "收款金额" )
    @TableField ( "receipt_amount" )
    private String receiptAmount;

    @ApiModelProperty ( "收款金额本位币" )
    @TableField ( "receipt_amount_currency" )
    private String receiptAmountCurrency;

    @ApiModelProperty ( "应收金额本位币" )
    @TableField ( "cope_money_currency" )
    private String copeMoneyCurrency;

    @ApiModelProperty ( "实收金额本位币" )
    @TableField ( "actual_money_currency" )
    private String actualMoneyCurrency;

    @ApiModelProperty ( "是否已推" )
    @TableField ( "is_send" )
    private Integer isSend;

    @ApiModelProperty ( "创建人" )
    @TableField ( "create_by" )
    private String createBy;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_time" )
    private Date createTime;

    @ApiModelProperty ( "修改人" )
    @TableField ( "update_by" )
    private String updateBy;

    @ApiModelProperty ( "修改时间" )
    @TableField ( "update_time" )
    private Date updateTime;

    @TableField ( "remarks" )
    private String remarks;

    /**
     * 是否可用
     */
    @ApiModelProperty ( "是否可用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否可用" )
    private Integer isUsed;

    @ApiModelProperty ( "单据类型" )
    @TableField ( exist = false )
    private String docTypeName;

    @ApiModelProperty ( "收款组织名称" )
    @TableField ( exist = false )
    private String receiptDeptName;

    @ApiModelProperty ( "结算组织名称" )
    @TableField ( exist = false)
    private String settlementDeptName;

    @ApiModelProperty ( "销售组织名称" )
    @TableField ( exist = false )
    private String saleCompanyName;

    @ApiModelProperty ( "销售部门名称" )
    @TableField ( exist = false )
    private String saleDeptName;

    @ApiModelProperty ( "销售员名称" )
    @TableField ( exist = false )
    private String saleUserName;

    @ApiModelProperty ( "币别" )
    @TableField ( exist = false )
    private String currencyName;

    @ApiModelProperty ( "结算币别名称" )
    @TableField ( exist = false )
    private String settlementCurrencyName;


    /**
     * 以下为推送金蝶
     */
    @ApiModelProperty ( "业务type" )
    @TableField ( exist = false )
    private String businessType;

    @ApiModelProperty ( "流程模型id" )
    @TableField ( exist = false )
    private String modelId;

    @ApiModelProperty ( "收款组织编码，送金额" )
    @TableField ( exist = false )
    private String receiptDeptCode;

    @ApiModelProperty ( "付款单位编码，送金额" )
    @TableField ( exist = false )
    private String payDeptCode;

    @ApiModelProperty ( "销售部门编码，送金额" )
    @TableField ( exist = false )
    private String saleDeptCode;

    @ApiModelProperty ( "往来单位编码，送金额" )
    @TableField ( exist = false )
    private String tracDeptCode;

    @ApiModelProperty ( "销售员编码，送金额" )
    @TableField ( exist = false )
    private String saleUserCode;

    @ApiModelProperty ( "付款单的退款金额" )
    @TableField ( exist = false )
    private String refundAmount;

    @ApiModelProperty ( "明细行Id" )
    @TableField ( exist = false )
    private String receiptDetailId;

    @ApiModelProperty ( "明细行结算方式编码" )
    @TableField ( exist = false )
    private String settlementTypeCode;

    @ApiModelProperty ( "明细行收款用途编码" )
    @TableField ( exist = false )
    private String receiptPurposeCode;

    @ApiModelProperty ( "明细行预收项目类型，1销售订单，2客户" )
    @TableField ( exist = false )
    private String prepaidItemType;

    @ApiModelProperty ( "明细行销售订单号" )
    @TableField ( exist = false )
    private String saleOrderCode;

    @ApiModelProperty ( "明细行应收金额" )
    @TableField ( exist = false )
    private String detailCopeMoney;

    @ApiModelProperty ( "明细行实收金额" )
    @TableField ( exist = false )
    private String detailActualMoney;

    @ApiModelProperty ( "明细行现金折扣" )
    @TableField ( exist = false )
    private String detailCashDiscount;

    @ApiModelProperty ( "明细行手续费" )
    @TableField ( exist = false )
    private String detailHandlingFees;

    @ApiModelProperty ( "明细行长短款" )
    @TableField ( exist = false )
    private String detailLongShortPay;

    @ApiModelProperty ( "明细行折后金额" )
    @TableField ( exist = false )
    private String detailDiscountedMoney;

    @ApiModelProperty ( "明细行我方银行账号" )
    @TableField ( exist = false )
    private String detailBankNumber;

    @ApiModelProperty ( "明细行结算号" )
    @TableField ( exist = false )
    private String detailSettlementNumber;

    @ApiModelProperty ( "明细行备注" )
    @TableField ( exist = false )
    private String detailRemarks;

    @ApiModelProperty ( "明细行交易时间" )
    @TableField ( exist = false )
    private String detailTransactionTime;

    @ApiModelProperty ( "明细行费用项目编码" )
    @TableField ( exist = false )
    private String detailFeeCode;

    @ApiModelProperty ( "明细行费用承担部门" )
    @TableField ( exist = false )
    private String detailFeeBearDeptCode;

    @ApiModelProperty ( "明细行物料编码" )
    @TableField ( exist = false )
    private String detailMaterialCode;

    @ApiModelProperty ( "明细行含税单价" )
    @TableField ( exist = false )
    private String detailTaxPrice;

    @ApiModelProperty ( "明细行预估税率" )
    @TableField ( exist = false )
    private String detailExpectTaxRate;

    @ApiModelProperty ( "明细行税额" )
    @TableField ( exist = false )
    private String detailTaxRate;

    @ApiModelProperty ( "明细行税额本位币" )
    @TableField ( exist = false )
    private String detailTaxRateCurrency;

    @ApiModelProperty ( "明细行应收金额不含税" )
    @TableField ( exist = false )
    private String detailNoTaxAmount;

    @ApiModelProperty ( "明细行应收金额不含税本位币" )
    @TableField ( exist = false )
    private String detailNoTaxAmountCurrency;

    @ApiModelProperty ( "明细行数量" )
    @TableField ( exist = false )
    private String detailNum;

    @ApiModelProperty ( "明细行源单编码" )
    @TableField ( exist = false )
    private String sourceNo;

    @ApiModelProperty ( "明细行源单类型" )
    @TableField ( exist = false )
    private String detailSourceDocType;

    @ApiModelProperty ( "明细行核销金额" )
    @TableField ( exist = false )
    private String detailVerifiedAmount;

    @ApiModelProperty ( "明细行行号" )
    @TableField ( exist = false )
    private String detailLineNumber;

    @ApiModelProperty ( "明细行创建人" )
    @TableField ( exist = false )
    private String createName;

    @ApiModelProperty ( "明细行结算方式名称" )
    @TableField ( exist = false )
    private String kingSettlementTypeName;

    @ApiModelProperty ( "明细行收款用途名称" )
    @TableField ( exist = false )
    private String receiptPurposeName;

    @ApiModelProperty ( "往来单位名称" )
    @TableField ( exist = false )
    private String transactionCompanyName;

    @ApiModelProperty ( "付款单位名称" )
    @TableField ( exist = false )
    private String payDeptName;

}
